//
//  String+Localization.swift
//  TTCOM
//
//  Created by Toj on 1/17/23.
//
// 本地化/ 国际化
//

import Foundation

// MARK: - 系统国际化方案
public extension String {
    
    /// 语言国际化
    var sys_language: String {
        return sys_localized
    }
    
    /**
     国际化
     - note: 如果找不到默认文案 "lg: \(Key)"
     */
    var sys_localized: String {
        return sys_localized(value: "lg: \(self)")
    }
    
    /**
     国际化
     
     - parameter value: 找不到文案, 默认文案
     - parameter comment: 备注, 无用
     */
    func sys_localized(
        value: String = "",
        comment: String = ""
    ) -> String {
        return NSLocalizedString(self, value: value, comment: comment)
    }
    
    func sys_localized(arguments: CVarArg...) -> String {
        return String(format: sys_language, arguments: arguments)
    }
}

// MARK: - 自定义 国际化方案
public extension String {
    
    var lg_language: String {
        return lg_localized
    }
    
    var lg_localized: String {
        return lg_localized(default: "lg: \(self)")
    }
    
    func lg_localized(
        default value: String = "",
        table name: String = "Language"
    ) -> String {
        return TTLocalizedString(for: self,
                                 default: value,
                                 table: name)
    }
    
    func lg_localized(arguments: CVarArg...) -> String {
        return String(format: lg_localized, arguments: arguments)
    }
}

// MARK: - ST 国际化方案
public extension String {
    
    var localized: String {
        return st_localized
    }
    
    func localized(default value: String = "") -> String {
        return st_localized(default: value)
    }
    
    var st_localized: String {
        return lg_localized
    }
    
    func st_localized(default value: String = "") -> String {
        return lg_localized(default: value)
    }
}
